new Promise((resolve, reject) => { // 执行器函数
  // 执行异步操作

  // 成功后, 调用resolve指定成功的value
  // resolve(1)
  // 失败后, 调用reject指定失败的reason
  reject(2)
}).then(
  value => {
    console.log('onResolved1', value)
  },
  reason => {
    console.log('onRejected1', reason)
    // 抛出错误  => 失败 reason是throw的数据
    // throw 3
    // 返回一个失败promise  => 失败 reason是返回的promise的reason
    // return Promise.reject(4)

    // 返回一个成功promise  => 成功 value是返回的promise的value
    // return Promise.resolve(5)
    
    // 返回非promise值  => 成功 value是返回的值
    // return 6
    
    // 返回一个pendding的promise
    return new Promise(() => {})
  }
).then(
  value => {
    console.log('onResolved2', value)
  },
  reason => {
    console.log('onRejected2', reason)
  }
)

/* 
then返回的promise的如何判断结果?
  由then指定的回调函数执行的结果决定
  详细:
    抛出错误
    返回一个失败promise

    返回一个成功promise
    返回非promise值

    返回一个pendding的promise
*/

